<?php

namespace Rebecca\RebeccaBundle\Component;

require_once "ComponentBase.php";

/**
 * Description of TestComponent
 *
 * @author JeyDotC
 */
class VacantesComponent extends ComponentBase {
    function getCargo($id) {
        $entities = $this->em->getRepository($this->entityName)->findBy(
                array(
                    'idCargo' => $id
                ));
        
        return $entities;
    }
    
    function getCargoAndGrado($idCargo, $idGrado) {
        $entity = $this->em->getRepository($this->entityName)->findOneBy(
                array(
                    'idGrado' => $idCargo,
                    'idNivel' => $idGrado
                ));
        
        return $entity;
    }
    
    function getVacantesFull() {
        $vacantes = $this->getAll();
        
        $fullData = array();
        
        foreach ($vacantes as $vacante){
            $array = array(
                'entity'      => $vacante,
                'ocupados'    => $this->getOcupados($vacante->getId()),
                'disponibles' => $this->getDisponibles($vacante->getId())
                );
            array_push($fullData, $array);
        }
        
        return $fullData;
    }
    
    function getOcupados($idVacante){
        $ocupados = $this->em->getRepository("RebeccaBundle:TrabajadoresEnVacante")->findBy(
                array(
                    'idVacante' => $idVacante,
                    'activo'    => '1'
                ));
        return count($ocupados);
    }
    
    function getDisponibles($idVacante) {
        
        $vacante = $this->get($idVacante);
        
        $disponibles = $vacante->getCantidad() - $this->getOcupados($vacante->getId());
        
        return $disponibles;
        
    }
    
    function getTipoNomina($idTipoNomina) {        
        $entity = $this->em->getRepository($this->entityName)->findBy(
                array(
                    'idTipoNomina' => $idTipoNomina
                ));
        
        return $entity;
    }
}

?>